!function(t, e, n, i) {
	"use strict";
	function r(t, e, n) {
		return setTimeout(c(t, n), e)
	}
	function s(t, e, n) {
		return !! Array.isArray(t) && (o(t, n[e], n), !0)
	}
	function o(t, e, n) {
		var r;
		if (t) if (t.forEach) t.forEach(e, n);
		else if (t.length !== i) for (r = 0; r < t.length;) e.call(n, t[r], r, t),
		r++;
		else for (r in t) t.hasOwnProperty(r) && e.call(n, t[r], r, t)
	}
	function a(e, n, i) {
		var r = "DEPRECATED METHOD: " + n + "\n" + i + " AT \n";
		return function() {
			var n = new Error("get-stack-trace"),
			i = n && n.stack ? n.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.<anonymous>\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace",
			s = t.console && (t.console.warn || t.console.log);
			return s && s.call(t.console, r, i),
			e.apply(this, arguments)
		}
	}
	function u(t, e, n) {
		var i, r = e.prototype;
		i = t.prototype = Object.create(r),
		i.constructor = t,
		i._super = r,
		n && lt(i, n)
	}
	function c(t, e) {
		return function() {
			return t.apply(e, arguments)
		}
	}
	function h(t, e) {
		return typeof t == dt ? t.apply(e ? e[0] || i: i, e) : t
	}
	function l(t, e) {
		return t === i ? e: t
	}
	function p(t, e, n) {
		o(m(e),
		function(e) {
			t.addEventListener(e, n, !1)
		})
	}
	function f(t, e, n) {
		o(m(e),
		function(e) {
			t.removeEventListener(e, n, !1)
		})
	}
	function d(t, e) {
		for (; t;) {
			if (t == e) return ! 0;
			t = t.parentNode
		}
		return ! 1
	}
	function v(t, e) {
		return t.indexOf(e) > -1
	}
	function m(t) {
		return t.trim().split(/\s+/g)
	}
	function g(t, e, n) {
		if (t.indexOf && !n) return t.indexOf(e);
		for (var i = 0; i < t.length;) {
			if (n && t[i][n] == e || !n && t[i] === e) return i;
			i++
		}
		return - 1
	}
	function y(t) {
		return Array.prototype.slice.call(t, 0)
	}
	function T(t, e, n) {
		for (var i = [], r = [], s = 0; s < t.length;) {
			var o = e ? t[s][e] : t[s];
			g(r, o) < 0 && i.push(t[s]),
			r[s] = o,
			s++
		}
		return n && (i = e ? i.sort(function(t, n) {
			return t[e] > n[e]
		}) : i.sort()),
		i
	}
	function E(t, e) {
		for (var n, r, s = e[0].toUpperCase() + e.slice(1), o = 0; o < pt.length;) {
			if (n = pt[o], r = n ? n + s: e, r in t) return r;
			o++
		}
		return i
	}
	function b() {
		return Et++
	}
	function x(e) {
		var n = e.ownerDocument || e;
		return n.defaultView || n.parentWindow || t
	}
	function w(t, e) {
		var n = this;
		this.manager = t,
		this.callback = e,
		this.element = t.element,
		this.target = t.options.inputTarget,
		this.domHandler = function(e) {
			h(t.options.enable, [t]) && n.handler(e)
		},
		this.init()
	}
	function I(t) {
		var e, n = t.options.inputClass;
		return new(e = n ? n: wt ? X: It ? W: xt ? L: Y)(t, P)
	}
	function P(t, e, n) {
		var i = n.pointers.length,
		r = n.changedPointers.length,
		s = e & Dt && i - r === 0,
		o = e & (zt | Mt) && i - r === 0;
		n.isFirst = !!s,
		n.isFinal = !!o,
		s && (t.session = {}),
		n.eventType = e,
		C(t, n),
		t.emit("hammer.input", n),
		t.recognize(n),
		t.session.prevInput = n
	}
	function C(t, e) {
		var n = t.session,
		i = e.pointers,
		r = i.length;
		n.firstInput || (n.firstInput = _(e)),
		r > 1 && !n.firstMultiple ? n.firstMultiple = _(e) : 1 === r && (n.firstMultiple = !1);
		var s = n.firstInput,
		o = n.firstMultiple,
		a = o ? o.center: s.center,
		u = e.center = D(i);
		e.timeStamp = gt(),
		e.deltaTime = e.timeStamp - s.timeStamp,
		e.angle = N(a, u),
		e.distance = M(a, u),
		S(n, e),
		e.offsetDirection = z(e.deltaX, e.deltaY);
		var c = k(e.deltaTime, e.deltaX, e.deltaY);
		e.overallVelocityX = c.x,
		e.overallVelocityY = c.y,
		e.overallVelocity = mt(c.x) > mt(c.y) ? c.x: c.y,
		e.scale = o ? R(o.pointers, i) : 1,
		e.rotation = o ? O(o.pointers, i) : 0,
		e.maxPointers = n.prevInput ? e.pointers.length > n.prevInput.maxPointers ? e.pointers.length: n.prevInput.maxPointers: e.pointers.length,
		A(n, e);
		var h = t.element;
		d(e.srcEvent.target, h) && (h = e.srcEvent.target),
		e.target = h
	}
	function S(t, e) {
		var n = e.center,
		i = t.offsetDelta || {},
		r = t.prevDelta || {},
		s = t.prevInput || {};
		e.eventType !== Dt && s.eventType !== zt || (r = t.prevDelta = {
			x: s.deltaX || 0,
			y: s.deltaY || 0
		},
		i = t.offsetDelta = {
			x: n.x,
			y: n.y
		}),
		e.deltaX = r.x + (n.x - i.x),
		e.deltaY = r.y + (n.y - i.y)
	}
	function A(t, e) {
		var n, r, s, o, a = t.lastInterval || e,
		u = e.timeStamp - a.timeStamp;
		if (e.eventType != Mt && (u > _t || a.velocity === i)) {
			var c = e.deltaX - a.deltaX,
			h = e.deltaY - a.deltaY,
			l = k(u, c, h);
			r = l.x,
			s = l.y,
			n = mt(l.x) > mt(l.y) ? l.x: l.y,
			o = z(c, h),
			t.lastInterval = e
		} else n = a.velocity,
		r = a.velocityX,
		s = a.velocityY,
		o = a.direction;
		e.velocity = n,
		e.velocityX = r,
		e.velocityY = s,
		e.direction = o
	}
	function _(t) {
		for (var e = [], n = 0; n < t.pointers.length;) e[n] = {
			clientX: vt(t.pointers[n].clientX),
			clientY: vt(t.pointers[n].clientY)
		},
		n++;
		return {
			timeStamp: gt(),
			pointers: e,
			center: D(e),
			deltaX: t.deltaX,
			deltaY: t.deltaY
		}
	}
	function D(t) {
		var e = t.length;
		if (1 === e) return {
			x: vt(t[0].clientX),
			y: vt(t[0].clientY)
		};
		for (var n = 0,
		i = 0,
		r = 0; r < e;) n += t[r].clientX,
		i += t[r].clientY,
		r++;
		return {
			x: vt(n / e),
			y: vt(i / e)
		}
	}
	function k(t, e, n) {
		return {
			x: e / t || 0,
			y: n / t || 0
		}
	}
	function z(t, e) {
		return t === e ? Nt: mt(t) >= mt(e) ? t < 0 ? Ot: Rt: e < 0 ? Yt: Xt
	}
	function M(t, e, n) {
		n || (n = qt);
		var i = e[n[0]] - t[n[0]],
		r = e[n[1]] - t[n[1]];
		return Math.sqrt(i * i + r * r)
	}
	function N(t, e, n) {
		n || (n = qt);
		var i = e[n[0]] - t[n[0]],
		r = e[n[1]] - t[n[1]];
		return 180 * Math.atan2(r, i) / Math.PI
	}
	function O(t, e) {
		return N(e[1], e[0], Lt) + N(t[1], t[0], Lt)
	}
	function R(t, e) {
		return M(e[0], e[1], Lt) / M(t[0], t[1], Lt)
	}
	function Y() {
		this.evEl = Vt,
		this.evWin = jt,
		this.pressed = !1,
		w.apply(this, arguments)
	}
	function X() {
		this.evEl = Zt,
		this.evWin = $t,
		w.apply(this, arguments),
		this.store = this.manager.session.pointerEvents = []
	}
	function F() {
		this.evTarget = Kt,
		this.evWin = Qt,
		this.started = !1,
		w.apply(this, arguments)
	}
	function H(t, e) {
		var n = y(t.touches),
		i = y(t.changedTouches);
		return e & (zt | Mt) && (n = T(n.concat(i), "identifier", !0)),
		[n, i]
	}
	function W() {
		this.evTarget = ee,
		this.targetIds = {},
		w.apply(this, arguments)
	}
	function q(t, e) {
		var n = y(t.touches),
		i = this.targetIds;
		if (e & (Dt | kt) && 1 === n.length) return i[n[0].identifier] = !0,
		[n, n];
		var r, s, o = y(t.changedTouches),
		a = [],
		u = this.target;
		if (s = n.filter(function(t) {
			return d(t.target, u)
		}), e === Dt) for (r = 0; r < s.length;) i[s[r].identifier] = !0,
		r++;
		for (r = 0; r < o.length;) i[o[r].identifier] && a.push(o[r]),
		e & (zt | Mt) && delete i[o[r].identifier],
		r++;
		return a.length ? [T(s.concat(a), "identifier", !0), a] : void 0
	}
	function L() {
		w.apply(this, arguments);
		var t = c(this.handler, this);
		this.touch = new W(this.manager, t),
		this.mouse = new Y(this.manager, t),
		this.primaryTouch = null,
		this.lastTouches = []
	}
	function U(t, e) {
		t & Dt ? (this.primaryTouch = e.changedPointers[0].identifier, V.call(this, e)) : t & (zt | Mt) && V.call(this, e)
	}
	function V(t) {
		var e = t.changedPointers[0];
		if (e.identifier === this.primaryTouch) {
			var n = {
				x: e.clientX,
				y: e.clientY
			};
			this.lastTouches.push(n);
			var i = this.lastTouches,
			r = function() {
				var t = i.indexOf(n);
				t > -1 && i.splice(t, 1)
			};
			setTimeout(r, ne)
		}
	}
	function j(t) {
		for (var e = t.srcEvent.clientX,
		n = t.srcEvent.clientY,
		i = 0; i < this.lastTouches.length; i++) {
			var r = this.lastTouches[i],
			s = Math.abs(e - r.x),
			o = Math.abs(n - r.y);
			if (s <= ie && o <= ie) return ! 0
		}
		return ! 1
	}
	function B(t, e) {
		this.manager = t,
		this.set(e)
	}
	function G(t) {
		if (v(t, ce)) return ce;
		var e = v(t, he),
		n = v(t, le);
		return e && n ? ce: e || n ? e ? he: le: v(t, ue) ? ue: ae
	}
	function Z() {
		if (!se) return ! 1;
		var e = {},
		n = t.CSS && t.CSS.supports;
		return ["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function(i) {
			e[i] = !n || t.CSS.supports("touch-action", i)
		}),
		e
	}
	function $(t) {
		this.options = lt({},
		this.defaults, t || {}),
		this.id = b(),
		this.manager = null,
		this.options.enable = l(this.options.enable, !0),
		this.state = fe,
		this.simultaneous = {},
		this.requireFail = []
	}
	function J(t) {
		return t & ye ? "cancel": t & me ? "end": t & ve ? "move": t & de ? "start": ""
	}
	function K(t) {
		return t == Xt ? "down": t == Yt ? "up": t == Ot ? "left": t == Rt ? "right": ""
	}
	function Q(t, e) {
		var n = e.manager;
		return n ? n.get(t) : t
	}
	function tt() {
		$.apply(this, arguments)
	}
	function et() {
		tt.apply(this, arguments),
		this.pX = null,
		this.pY = null
	}
	function nt() {
		tt.apply(this, arguments)
	}
	function it() {
		$.apply(this, arguments),
		this._timer = null,
		this._input = null
	}
	function rt() {
		tt.apply(this, arguments)
	}
	function st() {
		tt.apply(this, arguments)
	}
	function ot() {
		$.apply(this, arguments),
		this.pTime = !1,
		this.pCenter = !1,
		this._timer = null,
		this._input = null,
		this.count = 0
	}
	function at(t, e) {
		return e = e || {},
		e.recognizers = l(e.recognizers, at.defaults.preset),
		new ut(t, e)
	}
	function ut(t, e) {
		this.options = lt({},
		at.defaults, e || {}),
		this.options.inputTarget = this.options.inputTarget || t,
		this.handlers = {},
		this.session = {},
		this.recognizers = [],
		this.oldCssProps = {},
		this.element = t,
		this.input = I(this),
		this.touchAction = new B(this, this.options.touchAction),
		ct(this, !0),
		o(this.options.recognizers,
		function(t) {
			var e = this.add(new t[0](t[1]));
			t[2] && e.recognizeWith(t[2]),
			t[3] && e.requireFailure(t[3])
		},
		this)
	}
	function ct(t, e) {
		var n = t.element;
		if (n.style) {
			var i;
			o(t.options.cssProps,
			function(r, s) {
				i = E(n.style, s),
				e ? (t.oldCssProps[i] = n.style[i], n.style[i] = r) : n.style[i] = t.oldCssProps[i] || ""
			}),
			e || (t.oldCssProps = {})
		}
	}
	function ht(t, n) {
		var i = e.createEvent("Event");
		i.initEvent(t, !0, !0),
		i.gesture = n,
		n.target.dispatchEvent(i)
	}
	var lt, pt = ["", "webkit", "Moz", "MS", "ms", "o"],
	ft = e.createElement("div"),
	dt = "function",
	vt = Math.round,
	mt = Math.abs,
	gt = Date.now;
	lt = "function" != typeof Object.assign ?
	function(t) {
		if (t === i || null === t) throw new TypeError("Cannot convert undefined or null to object");
		for (var e = Object(t), n = 1; n < arguments.length; n++) {
			var r = arguments[n];
			if (r !== i && null !== r) for (var s in r) r.hasOwnProperty(s) && (e[s] = r[s])
		}
		return e
	}: Object.assign;
	var yt = a(function(t, e, n) {
		for (var r = Object.keys(e), s = 0; s < r.length;)(!n || n && t[r[s]] === i) && (t[r[s]] = e[r[s]]),
		s++;
		return t
	},
	"extend", "Use `assign`."),
	Tt = a(function(t, e) {
		return yt(t, e, !0)
	},
	"merge", "Use `assign`."),
	Et = 1,
	bt = /mobile|tablet|ip(ad|hone|od)|android/i,
	xt = "ontouchstart" in t,
	wt = E(t, "PointerEvent") !== i,
	It = xt && bt.test(navigator.userAgent),
	Pt = "touch",
	Ct = "pen",
	St = "mouse",
	At = "kinect",
	_t = 25,
	Dt = 1,
	kt = 2,
	zt = 4,
	Mt = 8,
	Nt = 1,
	Ot = 2,
	Rt = 4,
	Yt = 8,
	Xt = 16,
	Ft = Ot | Rt,
	Ht = Yt | Xt,
	Wt = Ft | Ht,
	qt = ["x", "y"],
	Lt = ["clientX", "clientY"];
	w.prototype = {
		handler: function() {},
		init: function() {
			this.evEl && p(this.element, this.evEl, this.domHandler),
			this.evTarget && p(this.target, this.evTarget, this.domHandler),
			this.evWin && p(x(this.element), this.evWin, this.domHandler)
		},
		destroy: function() {
			this.evEl && f(this.element, this.evEl, this.domHandler),
			this.evTarget && f(this.target, this.evTarget, this.domHandler),
			this.evWin && f(x(this.element), this.evWin, this.domHandler)
		}
	};
	var Ut = {
		mousedown: Dt,
		mousemove: kt,
		mouseup: zt
	},
	Vt = "mousedown",
	jt = "mousemove mouseup";
	u(Y, w, {
		handler: function(t) {
			var e = Ut[t.type];
			e & Dt && 0 === t.button && (this.pressed = !0),
			e & kt && 1 !== t.which && (e = zt),
			this.pressed && (e & zt && (this.pressed = !1), this.callback(this.manager, e, {
				pointers: [t],
				changedPointers: [t],
				pointerType: St,
				srcEvent: t
			}))
		}
	});
	var Bt = {
		pointerdown: Dt,
		pointermove: kt,
		pointerup: zt,
		pointercancel: Mt,
		pointerout: Mt
	},
	Gt = {
		2 : Pt,
		3 : Ct,
		4 : St,
		5 : At
	},
	Zt = "pointerdown",
	$t = "pointermove pointerup pointercancel";
	t.MSPointerEvent && !t.PointerEvent && (Zt = "MSPointerDown", $t = "MSPointerMove MSPointerUp MSPointerCancel"),
	u(X, w, {
		handler: function(t) {
			var e = this.store,
			n = !1,
			i = t.type.toLowerCase().replace("ms", ""),
			r = Bt[i],
			s = Gt[t.pointerType] || t.pointerType,
			o = s == Pt,
			a = g(e, t.pointerId, "pointerId");
			r & Dt && (0 === t.button || o) ? a < 0 && (e.push(t), a = e.length - 1) : r & (zt | Mt) && (n = !0),
			a < 0 || (e[a] = t, this.callback(this.manager, r, {
				pointers: e,
				changedPointers: [t],
				pointerType: s,
				srcEvent: t
			}), n && e.splice(a, 1))
		}
	});
	var Jt = {
		touchstart: Dt,
		touchmove: kt,
		touchend: zt,
		touchcancel: Mt
	},
	Kt = "touchstart",
	Qt = "touchstart touchmove touchend touchcancel";
	u(F, w, {
		handler: function(t) {
			var e = Jt[t.type];
			if (e === Dt && (this.started = !0), this.started) {
				var n = H.call(this, t, e);
				e & (zt | Mt) && n[0].length - n[1].length === 0 && (this.started = !1),
				this.callback(this.manager, e, {
					pointers: n[0],
					changedPointers: n[1],
					pointerType: Pt,
					srcEvent: t
				})
			}
		}
	});
	var te = {
		touchstart: Dt,
		touchmove: kt,
		touchend: zt,
		touchcancel: Mt
	},
	ee = "touchstart touchmove touchend touchcancel";
	u(W, w, {
		handler: function(t) {
			var e = te[t.type],
			n = q.call(this, t, e);
			n && this.callback(this.manager, e, {
				pointers: n[0],
				changedPointers: n[1],
				pointerType: Pt,
				srcEvent: t
			})
		}
	});
	var ne = 2500,
	ie = 25;
	u(L, w, {
		handler: function(t, e, n) {
			var i = n.pointerType == Pt,
			r = n.pointerType == St;
			if (! (r && n.sourceCapabilities && n.sourceCapabilities.firesTouchEvents)) {
				if (i) U.call(this, e, n);
				else if (r && j.call(this, n)) return;
				this.callback(t, e, n)
			}
		},
		destroy: function() {
			this.touch.destroy(),
			this.mouse.destroy()
		}
	});
	var re = E(ft.style, "touchAction"),
	se = re !== i,
	oe = "compute",
	ae = "auto",
	ue = "manipulation",
	ce = "none",
	he = "pan-x",
	le = "pan-y",
	pe = Z();
	B.prototype = {
		set: function(t) {
			t == oe && (t = this.compute()),
			se && this.manager.element.style && pe[t] && (this.manager.element.style[re] = t),
			this.actions = t.toLowerCase().trim()
		},
		update: function() {
			this.set(this.manager.options.touchAction)
		},
		compute: function() {
			var t = [];
			return o(this.manager.recognizers,
			function(e) {
				h(e.options.enable, [e]) && (t = t.concat(e.getTouchAction()))
			}),
			G(t.join(" "))
		},
		preventDefaults: function(t) {
			var e = t.srcEvent,
			n = t.offsetDirection;
			if (this.manager.session.prevented) return void e.preventDefault();
			var i = this.actions,
			r = v(i, ce) && !pe[ce],
			s = v(i, le) && !pe[le],
			o = v(i, he) && !pe[he];
			if (r) {
				var a = 1 === t.pointers.length,
				u = t.distance < 2,
				c = t.deltaTime < 250;
				if (a && u && c) return
			}
			return o && s ? void 0 : r || s && n & Ft || o && n & Ht ? this.preventSrc(e) : void 0
		},
		preventSrc: function(t) {
			this.manager.session.prevented = !0,
			t.preventDefault()
		}
	};
	var fe = 1,
	de = 2,
	ve = 4,
	me = 8,
	ge = me,
	ye = 16,
	Te = 32;
	$.prototype = {
		defaults: {},
		set: function(t) {
			return lt(this.options, t),
			this.manager && this.manager.touchAction.update(),
			this
		},
		recognizeWith: function(t) {
			if (s(t, "recognizeWith", this)) return this;
			var e = this.simultaneous;
			return t = Q(t, this),
			e[t.id] || (e[t.id] = t, t.recognizeWith(this)),
			this
		},
		dropRecognizeWith: function(t) {
			return s(t, "dropRecognizeWith", this) ? this: (t = Q(t, this), delete this.simultaneous[t.id], this)
		},
		requireFailure: function(t) {
			if (s(t, "requireFailure", this)) return this;
			var e = this.requireFail;
			return t = Q(t, this),
			g(e, t) === -1 && (e.push(t), t.requireFailure(this)),
			this
		},
		dropRequireFailure: function(t) {
			if (s(t, "dropRequireFailure", this)) return this;
			t = Q(t, this);
			var e = g(this.requireFail, t);
			return e > -1 && this.requireFail.splice(e, 1),
			this
		},
		hasRequireFailures: function() {
			return this.requireFail.length > 0
		},
		canRecognizeWith: function(t) {
			return !! this.simultaneous[t.id]
		},
		emit: function(t) {
			function e(e) {
				n.manager.emit(e, t)
			}
			var n = this,
			i = this.state;
			i < me && e(n.options.event + J(i)),
			e(n.options.event),
			t.additionalEvent && e(t.additionalEvent),
			i >= me && e(n.options.event + J(i))
		},
		tryEmit: function(t) {
			return this.canEmit() ? this.emit(t) : void(this.state = Te)
		},
		canEmit: function() {
			for (var t = 0; t < this.requireFail.length;) {
				if (! (this.requireFail[t].state & (Te | fe))) return ! 1;
				t++
			}
			return ! 0
		},
		recognize: function(t) {
			var e = lt({},
			t);
			return h(this.options.enable, [this, e]) ? (this.state & (ge | ye | Te) && (this.state = fe), this.state = this.process(e), void(this.state & (de | ve | me | ye) && this.tryEmit(e))) : (this.reset(), void(this.state = Te))
		},
		process: function(t) {},
		getTouchAction: function() {},
		reset: function() {}
	},
	u(tt, $, {
		defaults: {
			pointers: 1
		},
		attrTest: function(t) {
			var e = this.options.pointers;
			return 0 === e || t.pointers.length === e
		},
		process: function(t) {
			var e = this.state,
			n = t.eventType,
			i = e & (de | ve),
			r = this.attrTest(t);
			return i && (n & Mt || !r) ? e | ye: i || r ? n & zt ? e | me: e & de ? e | ve: de: Te
		}
	}),
	u(et, tt, {
		defaults: {
			event: "pan",
			threshold: 10,
			pointers: 1,
			direction: Wt
		},
		getTouchAction: function() {
			var t = this.options.direction,
			e = [];
			return t & Ft && e.push(le),
			t & Ht && e.push(he),
			e
		},
		directionTest: function(t) {
			var e = this.options,
			n = !0,
			i = t.distance,
			r = t.direction,
			s = t.deltaX,
			o = t.deltaY;
			return r & e.direction || (e.direction & Ft ? (r = 0 === s ? Nt: s < 0 ? Ot: Rt, n = s != this.pX, i = Math.abs(t.deltaX)) : (r = 0 === o ? Nt: o < 0 ? Yt: Xt, n = o != this.pY, i = Math.abs(t.deltaY))),
			t.direction = r,
			n && i > e.threshold && r & e.direction
		},
		attrTest: function(t) {
			return tt.prototype.attrTest.call(this, t) && (this.state & de || !(this.state & de) && this.directionTest(t))
		},
		emit: function(t) {
			this.pX = t.deltaX,
			this.pY = t.deltaY;
			var e = K(t.direction);
			e && (t.additionalEvent = this.options.event + e),
			this._super.emit.call(this, t)
		}
	}),
	u(nt, tt, {
		defaults: {
			event: "pinch",
			threshold: 0,
			pointers: 2
		},
		getTouchAction: function() {
			return [ce]
		},
		attrTest: function(t) {
			return this._super.attrTest.call(this, t) && (Math.abs(t.scale - 1) > this.options.threshold || this.state & de)
		},
		emit: function(t) {
			if (1 !== t.scale) {
				var e = t.scale < 1 ? "in": "out";
				t.additionalEvent = this.options.event + e
			}
			this._super.emit.call(this, t)
		}
	}),
	u(it, $, {
		defaults: {
			event: "press",
			pointers: 1,
			time: 251,
			threshold: 9
		},
		getTouchAction: function() {
			return [ae]
		},
		process: function(t) {
			var e = this.options,
			n = t.pointers.length === e.pointers,
			i = t.distance < e.threshold,
			s = t.deltaTime > e.time;
			if (this._input = t, !i || !n || t.eventType & (zt | Mt) && !s) this.reset();
			else if (t.eventType & Dt) this.reset(),
			this._timer = r(function() {
				this.state = ge,
				this.tryEmit()
			},
			e.time, this);
			else if (t.eventType & zt) return ge;
			return Te
		},
		reset: function() {
			clearTimeout(this._timer)
		},
		emit: function(t) {
			this.state === ge && (t && t.eventType & zt ? this.manager.emit(this.options.event + "up", t) : (this._input.timeStamp = gt(), this.manager.emit(this.options.event, this._input)))
		}
	}),
	u(rt, tt, {
		defaults: {
			event: "rotate",
			threshold: 0,
			pointers: 2
		},
		getTouchAction: function() {
			return [ce]
		},
		attrTest: function(t) {
			return this._super.attrTest.call(this, t) && (Math.abs(t.rotation) > this.options.threshold || this.state & de)
		}
	}),
	u(st, tt, {
		defaults: {
			event: "swipe",
			threshold: 10,
			velocity: .3,
			direction: Ft | Ht,
			pointers: 1
		},
		getTouchAction: function() {
			return et.prototype.getTouchAction.call(this)
		},
		attrTest: function(t) {
			var e, n = this.options.direction;
			return n & (Ft | Ht) ? e = t.overallVelocity: n & Ft ? e = t.overallVelocityX: n & Ht && (e = t.overallVelocityY),
			this._super.attrTest.call(this, t) && n & t.offsetDirection && t.distance > this.options.threshold && t.maxPointers == this.options.pointers && mt(e) > this.options.velocity && t.eventType & zt
		},
		emit: function(t) {
			var e = K(t.offsetDirection);
			e && this.manager.emit(this.options.event + e, t),
			this.manager.emit(this.options.event, t)
		}
	}),
	u(ot, $, {
		defaults: {
			event: "tap",
			pointers: 1,
			taps: 1,
			interval: 300,
			time: 250,
			threshold: 9,
			posThreshold: 10
		},
		getTouchAction: function() {
			return [ue]
		},
		process: function(t) {
			var e = this.options,
			n = t.pointers.length === e.pointers,
			i = t.distance < e.threshold,
			s = t.deltaTime < e.time;
			if (this.reset(), t.eventType & Dt && 0 === this.count) return this.failTimeout();
			if (i && s && n) {
				if (t.eventType != zt) return this.failTimeout();
				var o = !this.pTime || t.timeStamp - this.pTime < e.interval,
				a = !this.pCenter || M(this.pCenter, t.center) < e.posThreshold;
				this.pTime = t.timeStamp,
				this.pCenter = t.center,
				a && o ? this.count += 1 : this.count = 1,
				this._input = t;
				var u = this.count % e.taps;
				if (0 === u) return this.hasRequireFailures() ? (this._timer = r(function() {
					this.state = ge,
					this.tryEmit()
				},
				e.interval, this), de) : ge
			}
			return Te
		},
		failTimeout: function() {
			return this._timer = r(function() {
				this.state = Te
			},
			this.options.interval, this),
			Te
		},
		reset: function() {
			clearTimeout(this._timer)
		},
		emit: function() {
			this.state == ge && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input))
		}
	}),
	at.VERSION = "2.0.7",
	at.defaults = {
		domEvents: !1,
		touchAction: oe,
		enable: !0,
		inputTarget: null,
		inputClass: null,
		preset: [[rt, {
			enable: !1
		}], [nt, {
			enable: !1
		},
		["rotate"]], [st, {
			direction: Ft
		}], [et, {
			direction: Ft
		},
		["swipe"]], [ot], [ot, {
			event: "doubletap",
			taps: 2
		},
		["tap"]], [it]],
		cssProps: {
			userSelect: "none",
			touchSelect: "none",
			touchCallout: "none",
			contentZooming: "none",
			userDrag: "none",
			tapHighlightColor: "rgba(0,0,0,0)"
		}
	};
	var Ee = 1,
	be = 2;
	ut.prototype = {
		set: function(t) {
			return lt(this.options, t),
			t.touchAction && this.touchAction.update(),
			t.inputTarget && (this.input.destroy(), this.input.target = t.inputTarget, this.input.init()),
			this
		},
		stop: function(t) {
			this.session.stopped = t ? be: Ee
		},
		recognize: function(t) {
			var e = this.session;
			if (!e.stopped) {
				this.touchAction.preventDefaults(t);
				var n, i = this.recognizers,
				r = e.curRecognizer; (!r || r && r.state & ge) && (r = e.curRecognizer = null);
				for (var s = 0; s < i.length;) n = i[s],
				e.stopped === be || r && n != r && !n.canRecognizeWith(r) ? n.reset() : n.recognize(t),
				!r && n.state & (de | ve | me) && (r = e.curRecognizer = n),
				s++
			}
		},
		get: function(t) {
			if (t instanceof $) return t;
			for (var e = this.recognizers,
			n = 0; n < e.length; n++) if (e[n].options.event == t) return e[n];
			return null
		},
		add: function(t) {
			if (s(t, "add", this)) return this;
			var e = this.get(t.options.event);
			return e && this.remove(e),
			this.recognizers.push(t),
			t.manager = this,
			this.touchAction.update(),
			t
		},
		remove: function(t) {
			if (s(t, "remove", this)) return this;
			if (t = this.get(t)) {
				var e = this.recognizers,
				n = g(e, t);
				n !== -1 && (e.splice(n, 1), this.touchAction.update())
			}
			return this
		},
		on: function(t, e) {
			if (t !== i && e !== i) {
				var n = this.handlers;
				return o(m(t),
				function(t) {
					n[t] = n[t] || [],
					n[t].push(e)
				}),
				this
			}
		},
		off: function(t, e) {
			if (t !== i) {
				var n = this.handlers;
				return o(m(t),
				function(t) {
					e ? n[t] && n[t].splice(g(n[t], e), 1) : delete n[t]
				}),
				this
			}
		},
		emit: function(t, e) {
			this.options.domEvents && ht(t, e);
			var n = this.handlers[t] && this.handlers[t].slice();
			if (n && n.length) {
				e.type = t,
				e.preventDefault = function() {
					e.srcEvent.preventDefault()
				};
				for (var i = 0; i < n.length;) n[i](e),
				i++
			}
		},
		destroy: function() {
			this.element && ct(this, !1),
			this.handlers = {},
			this.session = {},
			this.input.destroy(),
			this.element = null
		}
	},
	lt(at, {
		INPUT_START: Dt,
		INPUT_MOVE: kt,
		INPUT_END: zt,
		INPUT_CANCEL: Mt,
		STATE_POSSIBLE: fe,
		STATE_BEGAN: de,
		STATE_CHANGED: ve,
		STATE_ENDED: me,
		STATE_RECOGNIZED: ge,
		STATE_CANCELLED: ye,
		STATE_FAILED: Te,
		DIRECTION_NONE: Nt,
		DIRECTION_LEFT: Ot,
		DIRECTION_RIGHT: Rt,
		DIRECTION_UP: Yt,
		DIRECTION_DOWN: Xt,
		DIRECTION_HORIZONTAL: Ft,
		DIRECTION_VERTICAL: Ht,
		DIRECTION_ALL: Wt,
		Manager: ut,
		Input: w,
		TouchAction: B,
		TouchInput: W,
		MouseInput: Y,
		PointerEventInput: X,
		TouchMouseInput: L,
		SingleTouchInput: F,
		Recognizer: $,
		AttrRecognizer: tt,
		Tap: ot,
		Pan: et,
		Swipe: st,
		Pinch: nt,
		Rotate: rt,
		Press: it,
		on: p,
		off: f,
		each: o,
		merge: Tt,
		extend: yt,
		assign: lt,
		inherit: u,
		bindFn: c,
		prefixed: E
	});
	var xe = "undefined" != typeof t ? t: "undefined" != typeof self ? self: {};
	xe.Hammer = at,
	"function" == typeof define && define.amd ? define(function() {
		return at
	}) : "undefined" != typeof module && module.exports ? module.exports = at: t[n] = at
} (window, document, "Hammer");
var PortalEvent = {
	count: 0,
	url: "https://g.cib.com.cn",
	defaultClick: function() {
		PortalEvent.count++,
		// console.log(window.top,'window.top')
		console.log(process.env.VUE_APP_DYJRlink,'window.self')
		if(1 === PortalEvent.count) return window.top.location.href=process.env.VUE_APP_DYJRlink;
		// 1 === PortalEvent.count && (window.self !== window.top ? window.top.location.href = PortalEvent.url + "/mobile/home/index": window.location.href = PortalEvent.url + "/mobile/home/index")
	},
	getCurrentScript: function() {
		if (document.currentScript) return document.currentScript.src;
		var t;
		try {
			a.b.c()
		} catch(e) {
			t = e.stack,
			!t && window.opera && (t = (String(e).match(/of linked script \S+/g) || []).join(" "))
		}
		if (t) return t = t.split(/[@ ]/g).pop(),
		t = "(" == t[0] ? t.slice(1, -1) : t,
		t.replace(/(:\d+)?:\d+$/i, "");
		for (var n, i = document.getElementByTagName("script"), r = 0; n = i[r++];) if ("interactive" === n.readyState) return n.src
	}
};
!function(t, e) {
	function n(t) {
		y != t.target && (T = 0),
		m = t.target.scrollTop,
		g = m - T,
		T = m,
		y = t.target,
		0 !== g && (i.style.opacity = ".2", v && clearTimeout(v), v = setTimeout(function() {
			i.style.opacity = ".9"
		},
		300))
	}
	var i = e.getElementById("backPortal");
	if (!i) {
		var r = PortalEvent.getCurrentScript(),
		s = r.split("//")[0],
		o = r.split("//")[1].split("/")[0];
		a = s + "//" + o ;
		// a = s + "//" + o + "/ksdwxgzh/static/img/backwhite.png";
		PortalEvent.url = s + "//" + o,
		i = e.createElement("a"),
		i.id = "backPortal",
		i.style.cssText = "position: fixed;top: 250px;left:0;z-index:9999;padding:6px 12px 6px 8px;line-height:1.4;background:rgba(67, 76, 103, .4);color:rgba(255, 255, 255, .8);font-size:12px;border-radius: 0 14px 14px 0;-webkit-tap-highlight-color:rgba(255, 255, 255, 0);outline:none;text-decoration:none;";
		var u = e.createElement("i");
		u.style.cssText = "display:inline-block;width:12px;height:15px;vertical-align: middle;background: url(" + a + ") no-repeat;background-size: 25px 40px;background-position: 0 0;opacity: .8";
		var c = e.createElement("span");
		c.innerText = "返回";
		var h = e.createElement("div");
		h.style.cssText = "display: inline-block;",
		h.appendChild(c),
		i.appendChild(u),
		i.appendChild(h),
		i.addEventListener("click", PortalEvent.defaultClick),
		e.body && (e.body.appendChild(i), e.body.style.height = "100%", e.body.parentNode.style.height = "100%")
	}
	var l = new Hammer.Manager(i),
	p = new Hammer.Pan;
	l.add(p);
	var f = !1,
	d = 0;
	l.on("pan",
	function(t) {
		f || (f = !0, d = i.offsetTop);
		var n = e.body.clientHeight,
		r = Number(n) - Number(i.offsetHeight),
		s = t.deltaY + d;
		s < 0 ? (i.style.top = 0, i.style.bottom = "auto") : s > r ? (i.style.top = r + "px", i.style.bottom = "auto") : (i.style.top = s + "px", i.style.bottom = "auto"),
		t.isFinal && (f = !1)
	});
	var v, m, g, y, T = 0;
	t.addEventListener("scroll", n, !0)
} (window, document);